#include<iostream>
#include<set>

using std::cout;
using std::endl;
using std::set;

template<typename T>
T add(T& x,T& y)
{
    return x+y;
}

template<>
set<int> add(set<int>& x,set<int>& y)
{
    for(auto&i:y)
    {
        x.insert(i);
    }
    //x.insert(y.begin(),y.end());
    return x;
}
int main(void)
{
    int x=1,y=2;
    double a=1.1,b=2.2;
    set<int> _a={1,2,4,5};
    set<int> _b={6,7,8,9};
    cout<<add(x,y)<<endl;
    cout<<add(a,b)<<endl;
    set<int>temp=add(_a,_b);
    for(auto& i:temp)
    {
        cout<<i<<" ";
    }
    cout<<endl;
}



